package cn.lycode.common.exception;

import cn.lycode.common.enums.IResponseEnum;
import cn.lycode.common.exception.base.BaseException;

import java.text.MessageFormat;

/**
 * @Title: ServiceExceptionCustomAssert
 * @Author lyg
 * @Date 2024/7/17 19:27
 * @description:
 */
public interface ServiceExceptionCustomAssert extends CustomAssert, IResponseEnum {

    default BaseException newException(Object... args){
        String msg = MessageFormat.format(this.getMsg(), args);
        return new ServiceException(this.getCode(),  msg);
    }

    /**
     * 创建异常，允许传递自定义的message和args
     *
     * @param message 自定义错误消息
     * @param args    message占位符对应的参数列表
     * @return 创建的异常
     */
    default BaseException newException(String message, Object... args) {
        String formattedMessage = MessageFormat.format(message, args);
        return new ServiceException(this.getCode(), formattedMessage);
    }
}
